Make sure the minimum shadow allocation is never zero.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 14 Jan 2010 14:11:25 +0000 (14:11 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 14 Jan 2010 14:11:25 +0000 (14:11 +0000)
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen/arch/x86/mm/shadow/common.c

index 434d56753688ca10720ecb7b36cf8d5b5c5c7392..5e37bb01d4907c3f0516bd7bb4df3a2cac634831 100644 (file)
@@ -1244,10 +1244,11 @@ int shadow_cmpxchg_guest_entry(struct vcpu *v, intpte_t *p,
  * instruction, we must be able to map a large number (about thirty) VAs
  * at the same time, which means that to guarantee progress, we must
  * allow for more than ninety allocated pages per vcpu.  We round that
- * up to 128 pages, or half a megabyte per vcpu. */
+ * up to 128 pages, or half a megabyte per vcpu, and add 1 more vcpu's 
+ * worth to make sure we never return zero. */
 static unsigned int shadow_min_acceptable_pages(struct domain *d) 
 {
-    u32 vcpu_count = 0;
+    u32 vcpu_count = 1;
     struct vcpu *v;
 
     for_each_vcpu(d, v)